// 1.0 引入axios
import axios from 'axios'
import local from '@/utils/local.js'

// 1.1 基本配置信息
axios.defaults.baseURL = '/api'
// 如果超过规定的时间，就算请求失败
axios.defaults.timeout = 10000

// 2.0 拦截器
axios.interceptors.request.use(config => {
  // 如果你有token，那么就给header来一个
  const token = local.get('token')
  if (token) {
    // 设置请求的header
    config.headers.Authorization = token
  }
  return config
})

// 3.0 导出一些基本的方法
export default {
  get(url, params = {}) {
    return new Promise((resolve, reject) => {
      // 由于axios把返回的数据进行了再次包裹，最终的数据在data属性中
      axios
        .get(url, { params })
        .then(res => {
          resolve(res.data)
        })
        .catch(err => {
          reject(err)
        })
    })
  },
  post(url, req = {}) {
    return new Promise((resolve, reject) => {
      // 由于axios把返回的数据进行了再次包裹，最终的数据在data属性中
      axios
        .post(url, req)
        .then(res => {
          resolve(res.data)
        })
        .catch(err => {
          reject(err)
        })
    })
  }
}
